package demo0519;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * ViewMain类是员工信息管理系统的主程序入口
 * 提供用户交互界面，处理用户输入并调用相应功能
 */
public class ViewMain {
    public static void main(String[] args) {
        //控制程序循环的标志
        boolean flag = true;
        //创建业务逻辑处理对象
        TestList testList = new TestList();
        //创建员工列表
        List<Emp> list = new ArrayList<>();

        //主循环,持续接收用户输入
        while(flag) {
            //显示菜单
            menu();
            //创建Scanner对象用于读取用户输入
            Scanner scanner = new Scanner(System.in);
            //读取用户选择的操作
            int n = scanner.nextInt();

            //根据用户选择执行相应操作
            switch(n) {
                case 0:
                    //退出系统
                    System.out.println("退出系统");
                    flag = false;
                    break;
                case 1:
                    //添加员工功能
                    System.out.println("添加员工界面");
                    System.out.println("请输入员工信息");
                    System.out.println("请输入员工编号");
                    String number = scanner.next();
                    System.out.println("请输入员工姓名");
                    String name = scanner.next();
                    System.out.println("请输入员工年龄");
                    int age = scanner.nextInt();
                    //创建员工对象
                    Emp emp = new Emp(number, name, age);
                    //调用添加员工方法
                    testList.addEmp(list, emp);
                    //打印当前员工列表
                    System.out.println(list);
                case 2:
                    // 查询所有员工
                    testList.showAllEmp(list);
                    break;
                case 3:
                    // 根据姓名查询
                    System.out.println("请输入要查询的员工姓名：");
                    String searchName = scanner.next();
                    testList.findEmpByName(list, searchName);
                    break;
                case 4:
                    // 删除员工
                    System.out.println("请输入要删除的员工工号：");
                    String delNumber = scanner.next();
                    testList.deleteEmp(list, delNumber);
                    break;
                case 5:
                    // 根据工号查询
                    System.out.println("请输入要查询的员工工号：");
                    String searchNumber = scanner.next();
                    testList.findEmpByNumber(list, searchNumber);
                    break;
                case 6:
                    // 根据工号修改年龄
                    System.out.println("请输入要修改的员工工号：");
                    String updateNumber = scanner.next();
                    System.out.println("请输入新的年龄：");
                    int newAge = scanner.nextInt();
                    testList.updateAgeByNumber(list, updateNumber, newAge);
                    break;
            }
        }
    }

    /**
     * 显示系统菜单
     * 提供用户可选择的操作选项
     */
    public static void menu() {
        System.out.println("欢迎来到员工信息管理系统");
        System.out.println("0.退出系统");
        System.out.println("1.添加员工");
        System.out.println("2.查询所有的员工");
        System.out.println("3.根据员工姓名查询");
        System.out.println("4.删除员工");
        System.out.println("5.根据员工编号查询");
        System.out.println("6.根据员工编号修改年龄");
        System.out.println("请选择你需要进行的操作");
    }
}